/*
 * Nivel.h
 *
 *  Created on: 16/09/2012
 *      Author: Administrador
 */

#ifndef NIVEL_H_
#define NIVEL_H_
#include "Pantalla.h"
#include "Personaje.h"
#include "Plataforma.h"
#include "Escalera.h"
#include <string>
#include <list>

class Nivel{

private:

	int alto;
	int ancho;
	int pisoNivel; /*describe la coordenada Y donde comienza el piso del nivel*/
	string pathFondo;
	list <Personaje*> personajes;
	list <Plataforma*> plataformas;
	list <Escalera*> escaleras;

public:

	Nivel();

	~Nivel();

	void setDimensiones(int alt, int anch);

	void setAlto(int alto);

	int getAlto() const;

	void setAncho(int ancho);

	int getAncho() const;

	void setParametros(map<string,string> parametros);

	void setPathFondo(const string& pathFondo);
	const string& getPathFondo() const;

	void setEscaleras(const list<Escalera*>& escaleras);
	list<Escalera*>& getEscaleras();

	void setPersonajes(const list<Personaje*>& personajes);
	list<Personaje*>& getPersonajes();

	void setPlataformas(const list<Plataforma*>& plataformas);
	list<Plataforma*>& getPlataformas();

	void setPantalla(Pantalla* pantalla);

	void imprimirNivel();

	void setPiso(int pisoNivel);

	int getPiso();

	void setProtagonista(Personaje* p);

	Personaje *getPersonaje(string nombre);

	int getCantidadPersonajes();


	void limpiarPersonajes(string nombre);

};

#endif /* NIVEL_H_ */
